﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace BusinessObjects
{
    /// <summary>
    /// Class that holds product information.
    /// </summary>
    /// <remarks>
    /// Enterprise Design Pattern: Domain Model, Identity Field.
    /// 
    /// This is where your business logic resides. In this example there are none.
    /// Another place for business logic and business rules is in the Facade.  
    /// For an example see CustomerFacade in the Facade layer.
    /// 
    /// The Domain Model Design Pattern states that domain objects incorporate 
    /// both behavior and data. Behavior may include simple or complex business logic.
    /// 
    /// The Identity Field Design Pattern saves the ID field in an object to maintain
    /// identity between an in-memory business object and that database rows.
    /// </remarks>
    public class Supplier : BusinessObject
    {
        /// <summary>
        /// Default constructor for product.
        /// </summary>
        public Supplier()
        {
            Version = _versionDefault;
        }

        /// <summary>
        /// Overloaded constructor for product
        /// </summary>
        /// <param name="productId">Unique identifier for Product</param>
        /// <param name="productName">Name of Product.</param>
        /// <param name="weight">Weight of Product.</param>
        /// <param name="unitPrice">Unit price of Product in US$.</param>
        /// <param name="unitsInStock">Product units in stock.</param>
        public Supplier(int supplierId, string companyName, string email, string companyPhone, 
            string mobilePhone, string yahooId, string skypeId, string gooleId, string facebookId, string userName, string password,string address,
            string description, int status)
            : this()
        {
            SupplierId = supplierId;
            CompanyName = companyName;
            Email = email;
            CompanyPhone = companyPhone;
            Mobilephone = mobilePhone;
            YahooId = yahooId;
            SkypeId = skypeId;
            GoogleId = gooleId;
            UserName = userName;
            Password = password;
            Address = address;
            FacebookId = facebookId;
            Description = description;
            Status = status;            
        }


        ///// <summary>
        /////  Category name of supplier.
        ///// </summary>        
        public int SupplierId { get; set; }

        ///// <summary>
        /////  Category name of supplier.
        ///// </summary>        
        public int Status { get; set; } //0 : Not active, 1 : Active, 2 : Block

        /// <summary>
        /// 
        /// </summary>        
        public string CompanyName { get; set; }

        /// <summary>
        /// Product name.
        /// </summary>        
        public string LogoUrl { get; set; }

        /// <summary>
        /// Product name.
        /// </summary>        
        public string CompanyPhone { get; set; }

        /// <summary>
        /// Product name.
        /// </summary>        
        public string Mobilephone { get; set; }

        /// <summary>
        /// Weight of product.
        /// </summary>        
        public string Address { get; set; }

        /// <summary>
        /// Weight of product.
        /// </summary>
        public string YahooId { get; set; }

        /// <summary>
        /// Weight of product.
        /// </summary>        
        public string SkypeId { get; set; }

        /// <summary>
        /// Weight of product.
        /// </summary>        
        public string GoogleId { get; set; }

        /// <summary>
        /// Weight of product.
        /// </summary>        
        public string FacebookId { get; set; }

        /// <summary>
        /// Price of product.
        /// </summary>        
        public string Email { get; set; }

        /// <summary>
        /// Price of product.
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// Price of product.
        /// </summary>
        public string Password { get; set; }

        /// <summary>
        /// Price of product.
        /// </summary>        
        public string Description { get; set; }

        /// <summary>
        /// Record Version number.
        /// </summary>
        public string Version { get; set; }           
    }
}
